package br.com.cong.dao;

import java.io.Serializable;
import java.util.List;

import br.com.cong.exception.PersistenceException;

public abstract interface GenericDAO<T, ID extends Serializable> {

	public void delete(T paramI) throws PersistenceException;

	public List<T> findAll() throws PersistenceException;

	public T findById(ID paramID) throws PersistenceException;

	public T save(T paramI) throws PersistenceException;

	public T saveOrUpdate(T paramI) throws PersistenceException;

	public void update(T paramI) throws PersistenceException;

	public List<T> findByExample(T paramI) throws PersistenceException;

	public void close();

	public void criarTabelas() throws PersistenceException;
}